home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / short17.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  43.9 KB  |  1,656 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "short.h"
  9. int r636gives_permission_to_any(T636* C){
  10. int R=0;
  11. /*IF*/if (/*(IRF4.7is_omitted*/((((T636*)C))->_start_position/*0*/)==(NULL)/*)*/) {
  12. R=1;
  13. }
  14.  else if (((((T636*)C))->_list/*4*/)==((void*)(NULL))) {
  15. }
  16. else {
  17. R=r46gives_permission_to_any(((T46*)((((T636*)C))->_list/*4*/)));
  18. }
  19. /*FI*/return R;
  20. }
  21. void r636merge(T636* C,T0* a1,T0* a2,T0* a3){
  22. C->_start_position=a1;
  23. {T46*n=malloc(sizeof(*n));
  24. *n=M46;
  25. r46merge(n,a2,a3);
  26. C->_list=(T0*)n;
  27. }
  28. }
  29. void r636make(T636* C,T0* a1,T0* a2){
  30. C->_start_position=a1;
  31. /*IF*/if ((a2)!=((void*)(NULL))) {
  32. {T46*n=malloc(sizeof(*n));
  33. *n=M46;
  34. r46make(n,a2);
  35. C->_list=(T0*)n;
  36. }
  37. }
  38. /*FI*/}
  39. /*No:CLIENT_LIST.start_position*/
  40. /*No:CLIENT_LIST.is_omitted*/
  41. int r636gives_permission_to(T636* C,T0* a1){
  42. int R=0;
  43. /*IF*/if (/*(IRF4.7is_omitted*/((((T636*)C))->_start_position/*0*/)==(NULL)/*)*/) {
  44. R=1;
  45. }
  46.  else if (((((T636*)C))->_list/*4*/)==((void*)(NULL))) {
  47. }
  48. else {
  49. R=r46gives_permission_to(((T46*)((((T636*)C))->_list/*4*/)),a1);
  50. }
  51. /*FI*//*IF*/if (!(R)) {
  52. r683add_position((((T636*)C))->_start_position/*0*/);
  53. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)a1)))->_to_string/*0*/;
  54. r7append(((T7*)(oBC683explanation)),b1);
  55. }/*]*/
  56. /*[IRF3.6append*/{T0* b1=((T0*)ms4_636);
  57. r7append(((T7*)(oBC683explanation)),b1);
  58. }/*]*/
  59. }
  60. /*FI*/return R;
  61. }
  62. /*No:CLIENT_LIST.list*/
  63. /*No:CLIENT_LIST.omitted*/
  64. T0* r636append(T636* C,T0* a1){
  65. T0* R=NULL;
  66. /*IF*/if ((((C)==((void*)(a1)))||(/*(IRF4.7is_omitted*/((((T636*)C))->_start_position/*0*/)==(NULL)/*)*/))||(r636gives_permission_to_any(C))) {
  67. R=(T0*)C;
  68. }
  69.  else if ((/*(IRF4.7is_omitted*/((((T636*)((T636*)a1)))->_start_position/*0*/)==(NULL)/*)*/)||(r636gives_permission_to_any(((T636*)a1)))) {
  70. R=a1;
  71. }
  72. else {
  73. {T636*n=malloc(sizeof(*n));
  74. *n=M636;
  75. r636merge(n,(((T636*)C))->_start_position/*0*/,(((T636*)C))->_list/*4*/,(((T636*)((T636*)a1)))->_list/*4*/);
  76. R=(T0*)n;
  77. }
  78. }
  79. /*FI*/return R;
  80. }
  81. /*No:E_CURRENT.short*/
  82. T0* r358add_comment(T358* C,T0* a1){
  83. T0* R=NULL;
  84. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  85. R=(T0*)C;
  86. }
  87. else {
  88. {T529*n=malloc(sizeof(*n));
  89. *n=M529;
  90. r529make(n,(T0*)C,a1);
  91. R=(T0*)n;
  92. }
  93. }
  94. /*FI*/return R;
  95. }
  96. int r358to_integer(T358* C){
  97. int R=0;
  98. r358error((((T358*)C))->_start_position/*16*/,((T0*)ms69_470));
  99. return R;
  100. }
  101. /*No:E_CURRENT.bracketed_short*/
  102. int r358is_a(T358* C,T0* a1){
  103. int R=0;
  104. R=X291is_a(X291run_type(/*(IRF4.3result_type*/(((T358*)C))->_current_type/*4*//*)*/),X291run_type(X662result_type(a1)));
  105. /*IF*/if (!(R)) {
  106. r683add_position((((T358*)C))->_start_position/*16*/);
  107. r358error(X662start_position(a1),((T0*)ms4_662));
  108. }
  109. /*FI*/return R;
  110. }
  111. /*No:E_CURRENT.is_current*/
  112. /*No:E_CURRENT.is_written*/
  113. void r358make(T358* C,T0* a1,int a2){
  114. C->_start_position=a1;
  115. C->_is_written=a2;
  116. C->_to_string=((T0*)ms143_473);
  117. }
  118. /*No:E_CURRENT.us_current*/
  119. /*No:E_CURRENT.to_string*/
  120. /*No:E_CURRENT.fz_iinaiv*/
  121. /*No:E_CURRENT.start_position*/
  122. /*No:E_CURRENT.precedence*/
  123. T0* r358to_runnable(T358* C,T0* a1){
  124. T0* R=NULL;
  125. /*IF*/if (((((T358*)C))->_current_type/*4*/)==((void*)(NULL))) {
  126. C->_current_type=a1;
  127. R=(T0*)C;
  128. }
  129.  else if (((((T358*)C))->_current_type/*4*/)==((void*)(a1))) {
  130. R=(T0*)C;
  131. }
  132. else {
  133. {T358*n=malloc(sizeof(*n));
  134. *n=M358;
  135. r358make(n,(((T358*)C))->_start_position/*16*/,(((T358*)C))->_is_written/*12*/);
  136. R=(T0*)n;
  137. }
  138. /*[IRF3.3set_current_type*/((((T358*)(((T358*)R))))->_current_type)=(a1);
  139. /*]*/
  140. }
  141. /*FI*/return R;
  142. }
  143. /*No:E_CURRENT.result_type*/
  144. /*No:E_CURRENT.set_current_type*/
  145. /*No:E_CURRENT.atomic_precedence*/
  146. /*No:E_CURRENT.current_type*/
  147. /*No:E_CURRENT.is_manifest_string*/
  148. /*No:E_CURRENT.is_void*/
  149. void r358error(T0* a1,T0* a2){
  150. r683add_position(a1);
  151. r683error(((T683*)(oBC364eh)),a2);
  152. }
  153. void r358short_target(T358* C){
  154. /*IF*/if ((((T358*)C))->_is_written/*12*/) {
  155. /*[IRF3.2short*/r580hook_or(((T580*)(oBC364short_print)),((T0*)ms143_473),((T0*)ms143_473));
  156. /*]*/
  157. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  158. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  159. }/*]*/
  160. }
  161. /*FI*/}
  162. void r592make(T592* C,T0* a1,T0* a2){
  163. C->_header_comment=a1;
  164. C->_list=a2;
  165. }
  166. /*No:COMPOUND.nb_errors*/
  167. T0* r592to_runnable(T592* C,T0* a1){
  168. T0* R=NULL;
  169. T0* _i2=NULL;
  170. T0* _i1=NULL;
  171. int _i=0;
  172. /*IF*/if (((((T592*)C))->_current_type/*4*/)==((void*)(NULL))) {
  173. C->_current_type=a1;
  174. /*IF*/if (((((T592*)C))->_list/*8*/)!=((void*)(NULL))) {
  175. _i=(((T419*)((T419*)((((T592*)C))->_list/*8*/))))->_upper/*8*/;
  176. while (!((_i)==(0))) {
  177. _i1=r419item(((T419*)((((T592*)C))->_list/*8*/)),_i);
  178. _i2=X465to_runnable(_i1,(T0*)C);
  179. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)) {
  180. /*[IRF3.6append*/{T0* b1=((T0*)ms1_592);
  181. r7append(((T7*)(oBC683explanation)),b1);
  182. }/*]*/
  183. /*[IRF3.6append*/{T0* b1=X291written_mark((((T592*)C))->_current_type/*4*/);
  184. r7append(((T7*)(oBC683explanation)),b1);
  185. }/*]*/
  186. r683add_position(X465start_position(_i1));
  187. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_592);
  188. r683fatal_error(((T683*)(oBC364eh)),b1);
  189. }/*]*/
  190. }
  191. else {
  192. /*[IRF3.6put*/{T419* C1=((T419*)((((T592*)C))->_list/*8*/));
  193. T0* b1=_i2;
  194. int b2=_i;
  195. ((((T419*)C1))->_storage/*0*/)[(b2)-((((T419*)C1))->_lower/*12*/)]=(b1);
  196. }/*]*/
  197. }
  198. /*FI*/_i=(_i)-(1);
  199. }
  200. }
  201. /*FI*/R=(T0*)C;
  202. }
  203. else {
  204. /*IF*/if (((((T592*)C))->_list/*8*/)==((void*)(NULL))) {
  205. {T592*n=malloc(sizeof(*n));
  206. *n=M592;
  207. r592make(n,(((T592*)C))->_header_comment/*0*/,NULL);
  208. R=(T0*)n;
  209. }
  210. }
  211. else {
  212. {T592*n=malloc(sizeof(*n));
  213. *n=M592;
  214. r592make(n,(((T592*)C))->_header_comment/*0*/,r419twin(((T419*)((((T592*)C))->_list/*8*/))));
  215. R=(T0*)n;
  216. }
  217. }
  218. /*FI*/R=r592to_runnable(((T592*)R),a1);
  219. }
  220. /*FI*/return R;
  221. }
  222. /*No:COMPOUND.list*/
  223. /*No:COMPOUND.current_type*/
  224. T0* r592run_class(T592* C){
  225. T0* R=NULL;
  226. R=X291run_class((((T592*)C))->_current_type/*4*/);
  227. return R;
  228. }
  229. /*No:COMPOUND.header_comment*/
  230. /*No:COMPOUND.fatal_error*/
  231. void r529short(T529* C){
  232. X662short((((T529*)C))->_expression/*8*/);
  233. }
  234. T0* r529add_comment(T529* C,T0* a1){
  235. T0* R=NULL;
  236. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  237. R=(T0*)C;
  238. }
  239. else {
  240. {T529*n=malloc(sizeof(*n));
  241. *n=M529;
  242. r529make(n,(T0*)C,a1);
  243. R=(T0*)n;
  244. }
  245. }
  246. /*FI*/return R;
  247. }
  248. int r529to_integer(T529* C){
  249. int R=0;
  250. r529error(r529start_position(C),((T0*)ms69_470));
  251. return R;
  252. }
  253. void r529bracketed_short(T529* C){
  254. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  255. r529short(C);
  256. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  257. }
  258. int r529is_a(T529* C,T0* a1){
  259. int R=0;
  260. R=X291is_a(X291run_type(r529result_type(C)),X291run_type(X662result_type(a1)));
  261. /*IF*/if (!(R)) {
  262. r683add_position(r529start_position(C));
  263. r529error(X662start_position(a1),((T0*)ms4_662));
  264. }
  265. /*FI*/return R;
  266. }
  267. /*No:EXPRESSION_WITH_COMMENT.is_current*/
  268. void r529make(T529* C,T0* a1,T0* a2){
  269. C->_expression=a1;
  270. C->_comment=a2;
  271. }
  272. /*No:EXPRESSION_WITH_COMMENT.fz_iinaiv*/
  273. /*No:EXPRESSION_WITH_COMMENT.expression*/
  274. T0* r529start_position(T529* C){
  275. T0* R=NULL;
  276. R=X662start_position((((T529*)C))->_expression/*8*/);
  277. return R;
  278. }
  279. int r529precedence(T529* C){
  280. int R=0;
  281. R=X662precedence((((T529*)C))->_expression/*8*/);
  282. return R;
  283. }
  284. /*No:EXPRESSION_WITH_COMMENT.comment*/
  285. T0* r529to_runnable(T529* C,T0* a1){
  286. T0* R=NULL;
  287. /*IF*/if (((((T529*)C))->_current_type/*4*/)==((void*)(NULL))) {
  288. C->_current_type=a1;
  289. C->_expression=X662to_runnable((((T529*)C))->_expression/*8*/,a1);
  290. R=(T0*)C;
  291. }
  292. else {
  293. R=r529twin(C);
  294. /*[IRF3.3set_current_type*/((((T529*)(((T529*)R))))->_current_type)=(NULL);
  295. /*]*/
  296. R=r529to_runnable(((T529*)R),a1);
  297. }
  298. /*FI*/return R;
  299. }
  300. T0* r529result_type(T529* C){
  301. T0* R=NULL;
  302. R=X662result_type((((T529*)C))->_expression/*8*/);
  303. return R;
  304. }
  305. T0* r529twin(T529* C){
  306. T0* R=NULL;
  307. R=malloc(sizeof(*C));
  308. *((T529*)R)=*C;
  309. return R;
  310. }
  311. /*No:EXPRESSION_WITH_COMMENT.set_current_type*/
  312. /*No:EXPRESSION_WITH_COMMENT.current_type*/
  313. /*No:EXPRESSION_WITH_COMMENT.is_manifest_string*/
  314. /*No:EXPRESSION_WITH_COMMENT.is_void*/
  315. void r529error(T0* a1,T0* a2){
  316. r683add_position(a1);
  317. r683error(((T683*)(oBC364eh)),a2);
  318. }
  319. void r529short_target(T529* C){
  320. X662short_target((((T529*)C))->_expression/*8*/);
  321. }
  322. void r436short(T436* C){
  323. int _i=0;
  324. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms2_436),((T0*)ms95_470));
  325. /*IF*/if (((((T436*)C))->_list/*12*/)!=((void*)(NULL))) {
  326. _i=1;
  327. while (!((_i)>(/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/)))) {
  328. X662short(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i)));
  329. _i=(_i)+(1);
  330. /*IF*/if ((_i)<=(/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/))) {
  331. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms3_436),((T0*)ms4_436));
  332. }
  333. /*FI*/}
  334. }
  335. /*FI*/r580hook_or(((T580*)(oBC364short_print)),((T0*)ms5_436),((T0*)ms96_470));
  336. }
  337. T0* r436add_comment(T436* C,T0* a1){
  338. T0* R=NULL;
  339. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  340. R=(T0*)C;
  341. }
  342. else {
  343. {T529*n=malloc(sizeof(*n));
  344. *n=M529;
  345. r529make(n,(T0*)C,a1);
  346. R=(T0*)n;
  347. }
  348. }
  349. /*FI*/return R;
  350. }
  351. int r436to_integer(T436* C){
  352. int R=0;
  353. r436error((((T436*)C))->_start_position/*8*/,((T0*)ms69_470));
  354. return R;
  355. }
  356. void r436bracketed_short(T436* C){
  357. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms6_662),((T0*)ms7_662));
  358. r436short(C);
  359. r580hook_or(((T580*)(oBC364short_print)),((T0*)ms8_662),((T0*)ms9_662));
  360. }
  361. int r436is_a(T436* C,T0* a1){
  362. int R=0;
  363. R=r709is_a(((T709*)((((T709*)((T709*)((((T436*)C))->_result_type/*16*/))))->_run_type/*16*/)),X291run_type(X662result_type(a1)));
  364. /*IF*/if (!(R)) {
  365. r683add_position((((T436*)C))->_start_position/*8*/);
  366. r436error(X662start_position(a1),((T0*)ms4_662));
  367. }
  368. /*FI*/return R;
  369. }
  370. /*No:MANIFEST_ARRAY.is_current*/
  371. void r436make(T436* C,T0* a1,T0* a2){
  372. C->_start_position=a1;
  373. C->_list=a2;
  374. }
  375. /*No:MANIFEST_ARRAY.nb_errors*/
  376. /*No:MANIFEST_ARRAY.fz_iinaiv*/
  377. /*No:MANIFEST_ARRAY.fz_c_shift_left*/
  378. T0* r436type_any(void){
  379. if (fBC364type_any==0){
  380. T0* R=NULL;
  381. fBC364type_any=1;
  382. {T669*n=malloc(sizeof(*n));
  383. *n=M669;
  384. r669make(n,NULL);
  385. R=(T0*)n;
  386. }
  387. oBC364type_any=R;}
  388. return oBC364type_any;}
  389. /*No:MANIFEST_ARRAY.start_position*/
  390. /*No:MANIFEST_ARRAY.precedence*/
  391. T0* r436to_runnable(T436* C,T0* a1){
  392. T0* R=NULL;
  393. T0* _t=NULL;
  394. T0* _e=NULL;
  395. int _i=0;
  396. /*IF*/if (((((T436*)C))->_current_type/*4*/)==((void*)(NULL))) {
  397. C->_current_type=a1;
  398. /*IF*/if (((((T436*)C))->_list/*12*/)==((void*)(NULL))) {
  399. _t=r436type_any();
  400. }
  401. else {
  402. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/);
  403. while (!((_i)==(0))) {
  404. _e=X662to_runnable(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i)),a1);
  405. /*IF*/if ((_e)==((void*)(NULL))) {
  406. r683add_position((((T436*)C))->_start_position/*8*/);
  407. r436error(X662start_position(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i))),((T0*)ms1_436));
  408. _i=0;
  409. }
  410. else {
  411. /*X96*//*[IRF3.6put*/{T96* C1=((T96*)((((T436*)C))->_list/*12*/));
  412. T0* b1=_e;
  413. int b2=_i;
  414. ((((T96*)C1))->_storage/*4*/)[(b2)-((((T96*)C1))->_lower/*16*/)]=(b1);
  415. }/*]*/
  416. /*IF*/if ((_t)==((void*)(NULL))) {
  417. _t=X662result_type(_e);
  418. }
  419. else {
  420. _t=X291smallest_ancestor(_t,X662result_type(_e));
  421. }
  422. /*FI*/_i=(_i)-(1);
  423. }
  424. /*FI*/}
  425. }
  426. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  427. {T709*n=malloc(sizeof(*n));
  428. *n=M709;
  429. r709make(n,(((T436*)C))->_start_position/*8*/,X291run_type(_t));
  430. C->_result_type=(T0*)n;
  431. }
  432. C->_result_type=r709to_runnable(((T709*)((((T436*)C))->_result_type/*16*/)),(((T436*)C))->_current_type/*4*/);
  433. r368set_at_run_time(((T368*)(r709run_class(((T709*)((((T436*)C))->_result_type/*16*/))))));
  434. R=(T0*)C;
  435. /*IF*/if ((X291is_reference(_t))&&(((((T436*)C))->_list/*12*/)!=((void*)(NULL)))) {
  436. _i=/*X96*/((int)(((T96*)((T96*)((((T436*)C))->_list/*12*/))))->_upper/*12*/);
  437. while (!((_i)==(0))) {
  438. _t=X662result_type(/*X96*/((T0*)r96item(((T96*)((((T436*)C))->_list/*12*/)),_i)));
  439. /*IF*/if (X291is_expanded(_t)) {
  440. X291used_as_reference(_t);
  441. }
  442. /*FI*/_i=(_i)-(1);
  443. }
  444. }
  445. /*FI*/}
  446. /*FI*/}
  447. else {
  448. /*IF*/if (((((T436*)C))->_list/*12*/)==((void*)(NULL))) {
  449. {T436*n=malloc(sizeof(*n));
  450. *n=M436;
  451. r436make(n,(((T436*)C))->_start_position/*8*/,NULL);
  452. R=(T0*)n;
  453. }
  454. }
  455. else {
  456. {T436*n=malloc(sizeof(*n));
  457. *n=M436;
  458. r436make(n,(((T436*)C))->_start_position/*8*/,X96twin((((T436*)C))->_list/*12*/));
  459. R=(T0*)n;
  460. }
  461. }
  462. /*FI*/R=r436to_runnable(((T436*)R),a1);
  463. }
  464. /*FI*/return R;
  465. }
  466. /*No:MANIFEST_ARRAY.fz_c_shift_right*/
  467. /*No:MANIFEST_ARRAY.result_type*/
  468. /*No:MANIFEST_ARRAY.list*/
  469. /*No:MANIFEST_ARRAY.current_type*/
  470. /*No:MANIFEST_ARRAY.is_manifest_string*/
  471. /*No:MANIFEST_ARRAY.is_void*/
  472. void r436error(T0* a1,T0* a2){
  473. r683add_position(a1);
  474. r683error(((T683*)(oBC364eh)),a2);
  475. }
  476. void r436short_target(T436* C){
  477. r436bracketed_short(C);
  478. /*[IRF3.6a_dot*/{T580* C1=((T580*)(oBC364short_print));
  479. r580hook_or(C1,((T0*)ms58_580),((T0*)ms67_470));
  480. }/*]*/
  481. }
  482. void r644get_started(T644* C,T0* a1){
  483. T0* _rp2=NULL;
  484. T0* _rp1=NULL;
  485. int _j=0;
  486. int _i=0;
  487. _i=(((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/;
  488. while (!((_i)==(0))) {
  489. _rp1=r552item(((T552*)((((T644*)C))->_list/*0*/)),_i);
  490. /*IF*/if (!(r605has(((T605*)a1),(((T498*)((T498*)_rp1)))->_old_name/*0*/))) {
  491. r683add_position(X776start_position((((T498*)((T498*)_rp1)))->_old_name/*0*/));
  492. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_644);
  493. r683fatal_error(((T683*)(oBC364eh)),b1);
  494. }/*]*/
  495. }
  496. /*FI*/_i=(_i)-(1);
  497. _j=_i;
  498. while (!((_j)==(0))) {
  499. _rp2=r552item(((T552*)((((T644*)C))->_list/*0*/)),_j);
  500. /*IF*/if ((X776to_key((((T498*)((T498*)_rp2)))->_old_name/*0*/))==((void*)(X776to_key((((T498*)((T498*)_rp1)))->_old_name/*0*/)))) {
  501. r683add_position(X776start_position((((T498*)((T498*)_rp1)))->_old_name/*0*/));
  502. r683add_position(X776start_position((((T498*)((T498*)_rp2)))->_old_name/*0*/));
  503. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_644);
  504. r683fatal_error(((T683*)(oBC364eh)),b1);
  505. }/*]*/
  506. }
  507. /*FI*/_j=(_j)-(1);
  508. }
  509. }
  510. }
  511. int r644affect(T644* C,T0* a1){
  512. int R=0;
  513. T0* _fn_to_key=NULL;
  514. T0* _rp=NULL;
  515. int _i=0;
  516. _i=(((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/;
  517. while (!((R)||((_i)==(0)))) {
  518. _rp=r552item(((T552*)((((T644*)C))->_list/*0*/)),_i);
  519. _fn_to_key=X776to_key(a1);
  520. /*IF*/if (((X776to_key((((T498*)((T498*)_rp)))->_new_name/*4*/))==((void*)(_fn_to_key)))||((X776to_key((((T498*)((T498*)_rp)))->_old_name/*0*/))==((void*)(_fn_to_key)))) {
  521. R=1;
  522. }
  523. else {
  524. _i=(_i)-(1);
  525. }
  526. /*FI*/}
  527. return R;
  528. }
  529. /*No:RENAME_LIST.make*/
  530. T0* r644to_new_name(T644* C,T0* a1){
  531. T0* R=NULL;
  532. T0* _fn_to_key=NULL;
  533. int _i=0;
  534. _i=1;
  535. _fn_to_key=X776to_key(a1);
  536. while (!(((R)!=((void*)(NULL)))||((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)))) {
  537. /*IF*/if ((X776to_key((((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_old_name/*0*/))==((void*)(_fn_to_key))) {
  538. R=(((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_new_name/*4*/;
  539. }
  540. /*FI*/_i=(_i)+(1);
  541. }
  542. /*IF*/if ((R)==((void*)(NULL))) {
  543. R=a1;
  544. }
  545. /*FI*/return R;
  546. }
  547. T0* r644to_old_name(T644* C,T0* a1){
  548. T0* R=NULL;
  549. T0* _fn_to_key=NULL;
  550. int _i=0;
  551. _i=1;
  552. _fn_to_key=X776to_key(a1);
  553. while (!(((R)!=((void*)(NULL)))||((_i)>((((T552*)((T552*)((((T644*)C))->_list/*0*/))))->_upper/*8*/)))) {
  554. /*IF*/if ((X776to_key((((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_new_name/*4*/))==((void*)(_fn_to_key))) {
  555. R=(((T498*)((T498*)(r552item(((T552*)((((T644*)C))->_list/*0*/)),_i)))))->_old_name/*0*/;
  556. }
  557. /*FI*/_i=(_i)+(1);
  558. }
  559. /*IF*/if ((R)==((void*)(NULL))) {
  560. R=a1;
  561. }
  562. /*FI*/return R;
  563. }
  564. /*No:RENAME_LIST.list*/
  565. /*No:RENAME_LIST.add_last*/
  566. /*No:RENAME_LIST.fatal_error*/
  567. void r388short(T388* C){
  568. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  569. /*[IRF3.6short_hook*/{T388* C1=C;
  570. r580a_class_name(((T580*)(oBC364short_print)),(((T388*)C1))->_base_class_name/*4*/);
  571. }/*]*/
  572. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  573. }
  574. int r388has_creation(T388* C,T0* a1){
  575. int R=0;
  576. r683add_position(X776start_position(a1));
  577. r388error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T388*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  578. return R;
  579. }
  580. /*No:TYPE_DOUBLE.is_anchored*/
  581. /*No:TYPE_DOUBLE.is_array*/
  582. int r388is_a(T388* C,T0* a1){
  583. int R=0;
  584. /*IF*/if (X291is_double(a1)) {
  585. R=1;
  586. }
  587. else {
  588. R=r605is_subclass_of(((T605*)(r388base_class(C))),X291base_class(a1));
  589. /*IF*/if (R) {
  590. r388used_as_reference();
  591. }
  592. /*FI*/}
  593. /*FI*//*IF*/if (!(R)) {
  594. r683add_type((T0*)C,((T0*)ms71_470));
  595. r683add_type(a1,((T0*)ms67_470));
  596. }
  597. /*FI*/return R;
  598. }
  599. /*No:TYPE_DOUBLE.run_type*/
  600. /*No:TYPE_DOUBLE.is_pointer*/
  601. /*No:TYPE_DOUBLE.us_double_ref*/
  602. /*No:TYPE_DOUBLE.is_string*/
  603. /*No:TYPE_DOUBLE.is_like_feature*/
  604. /*No:TYPE_DOUBLE.is_like_current*/
  605. void r388make(T388* C,T0* a1){
  606. {T451*n=malloc(sizeof(*n));
  607. *n=M451;
  608. r451make(n,((T0*)ms11_473),a1);
  609. C->_base_class_name=(T0*)n;
  610. }
  611. }
  612. /*No:TYPE_DOUBLE.nb_errors*/
  613. /*No:TYPE_DOUBLE.us_item*/
  614. void r388load_ref(T0* a1){
  615. T0* _rf=NULL;
  616. T0* _rc=NULL;
  617. T0* _cn=NULL;
  618. {T451*n=malloc(sizeof(*n));
  619. *n=M451;
  620. r451make(n,a1,NULL);
  621. _cn=(T0*)n;
  622. }
  623. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  624. r368set_at_run_time(((T368*)_rc));
  625. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  626. }
  627. int fBC388check_type=0;
  628. void r388check_type(T388* C){
  629. if (fBC388check_type==0){
  630. T0* _rc=NULL;
  631. T0* _bc=NULL;
  632. fBC388check_type=1;
  633. _bc=r388base_class(C);
  634. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  635. _rc=r388run_class(C);
  636. }
  637. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  638. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  639. r388error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T388*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_388));
  640. }
  641. /*FI*/}
  642. /*FI*/}}
  643. /*No:TYPE_DOUBLE.start_position*/
  644. /*No:TYPE_DOUBLE.fz_inako*/
  645. /*No:TYPE_DOUBLE.is_character*/
  646. T0* r388written_mark(void){
  647. T0* R=NULL;
  648. R=((T0*)ms11_473);
  649. return R;
  650. }
  651. /*No:TYPE_DOUBLE.is_run_type*/
  652. T0* r388to_runnable(T388* C,T0* a1){
  653. T0* R=NULL;
  654. R=(T0*)C;
  655. r388check_type(C);
  656. return R;
  657. }
  658. T0* r388generic_list(T388* C){
  659. T0* R=NULL;
  660. r388fatal_error_generic_list(C);
  661. return R;
  662. }
  663. /*No:TYPE_DOUBLE.is_formal_generic*/
  664. /*No:TYPE_DOUBLE.is_real*/
  665. /*No:TYPE_DOUBLE.is_bit*/
  666. void r388fatal_error_generic_list(T388* C){
  667. r683add_type((T0*)C,((T0*)ms12_291));
  668. r683print_as_fatal_error(((T683*)(oBC364eh)));
  669. }
  670. T0* r388smallest_ancestor(T388* C,T0* a1){
  671. T0* R=NULL;
  672. T0* _rto=NULL;
  673. _rto=X291run_type(a1);
  674. /*IF*/if (X291is_integer(_rto)) {
  675. R=(T0*)C;
  676. }
  677.  else if (X291is_real(_rto)) {
  678. R=(T0*)C;
  679. }
  680.  else if (X291is_double(_rto)) {
  681. R=(T0*)C;
  682. }
  683. else {
  684. R=r657smallest_ancestor(((T657*)(r388type_double_ref())),_rto);
  685. }
  686. /*FI*/return R;
  687. }
  688. /*No:TYPE_DOUBLE.is_boolean*/
  689. /*No:TYPE_DOUBLE.is_double*/
  690. T0* r388run_class(T388* C){
  691. T0* R=NULL;
  692. R=r604run_class((T0*)C);
  693. return R;
  694. }
  695. T0* r388run_time_mark(void){
  696. T0* R=NULL;
  697. R=((T0*)ms11_473);
  698. return R;
  699. }
  700. int r388is_a_in(T388* C,T0* a1,T0* a2){
  701. int R=0;
  702. T0* _ct=NULL;
  703. T0* _t2=NULL;
  704. T0* _t1=NULL;
  705. /*IF*/if ((r388written_mark())==((void*)(X291written_mark(a1)))) {
  706. R=1;
  707. }
  708. else {
  709. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  710. _t1=r388to_runnable(C,_ct);
  711. _t2=X291to_runnable(a1,_ct);
  712. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  713. R=1;
  714. }
  715. else {
  716. R=X291is_a(_t1,_t2);
  717. }
  718. /*FI*/}
  719. /*FI*/return R;
  720. }
  721. T0* r388look_up_for(T388* C,T0* a1,T0* a2){
  722. T0* R=NULL;
  723. R=r605look_up_for(((T605*)(r388base_class(C))),a1,a2);
  724. return R;
  725. }
  726. /*No:TYPE_DOUBLE.expanded_initializer*/
  727. /*No:TYPE_DOUBLE.us_double*/
  728. /*No:TYPE_DOUBLE.fz_dot*/
  729. /*No:TYPE_DOUBLE.is_generic*/
  730. int fBC388used_as_reference=0;
  731. void r388used_as_reference(void){
  732. if (fBC388used_as_reference==0){
  733. fBC388used_as_reference=1;
  734. r388load_ref(((T0*)ms12_473));
  735. }}
  736. int fBC364type_double_ref=0;
  737. T0*oBC364type_double_ref=NULL;
  738. T0* r388type_double_ref(void){
  739. if (fBC364type_double_ref==0){
  740. T0* R=NULL;
  741. T0* _double_ref=NULL;
  742. fBC364type_double_ref=1;
  743. {T451*n=malloc(sizeof(*n));
  744. *n=M451;
  745. r451make(n,((T0*)ms12_473),NULL);
  746. _double_ref=(T0*)n;
  747. }
  748. {T657*n=malloc(sizeof(*n));
  749. *n=M657;
  750. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_double_ref);
  751. /*]*/
  752. R=(T0*)n;
  753. }
  754. oBC364type_double_ref=R;}
  755. return oBC364type_double_ref;}
  756. /*No:TYPE_DOUBLE.is_reference*/
  757. void r388error(T0* a1,T0* a2){
  758. r683add_position(a1);
  759. r683error(((T683*)(oBC364eh)),a2);
  760. }
  761. T0* r388base_class(T388* C){
  762. T0* R=NULL;
  763. T0* _bcn=NULL;
  764. _bcn=(((T388*)C))->_base_class_name/*4*/;
  765. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  766. R=r451base_class(((T451*)_bcn));
  767. }
  768. else {
  769. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  770. r7append(((T7*)(oBC683explanation)),b1);
  771. }/*]*/
  772. r683add_type((T0*)C,((T0*)ms67_470));
  773. r683print_as_fatal_error(((T683*)(oBC364eh)));
  774. }
  775. /*FI*/return R;
  776. }
  777. /*No:TYPE_DOUBLE.short_hook*/
  778. /*No:TYPE_DOUBLE.is_any*/
  779. /*No:TYPE_DOUBLE.base_class_name*/
  780. /*No:TYPE_DOUBLE.is_expanded*/
  781. /*No:TYPE_DOUBLE.is_basic_eiffel_expanded*/
  782. /*No:TYPE_DOUBLE.is_none*/
  783. /*No:TYPE_DOUBLE.is_integer*/
  784. void r900short(T900* C){
  785. r580hook(((T580*)(oBC364short_print)),((T0*)ms1_291));
  786. /*[IRF3.6short_hook*/{T900* C1=C;
  787. r580a_class_name(((T580*)(oBC364short_print)),(((T900*)C1))->_base_class_name/*4*/);
  788. }/*]*/
  789. r580hook(((T580*)(oBC364short_print)),((T0*)ms2_291));
  790. }
  791. int r900has_creation(T900* C,T0* a1){
  792. int R=0;
  793. r683add_position(X776start_position(a1));
  794. r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms1_84));
  795. return R;
  796. }
  797. /*No:TYPE_POINTER.is_anchored*/
  798. /*No:TYPE_POINTER.is_array*/
  799. int r900is_a(T900* C,T0* a1){
  800. int R=0;
  801. /*IF*/if (X291is_pointer(a1)) {
  802. R=1;
  803. }
  804. else {
  805. R=r605is_subclass_of(((T605*)(r900base_class(C))),X291base_class(a1));
  806. /*IF*/if (R) {
  807. r900used_as_reference();
  808. }
  809. /*FI*/}
  810. /*FI*//*IF*/if (!(R)) {
  811. r683add_type((T0*)C,((T0*)ms1_900));
  812. r683add_type(a1,((T0*)ms67_470));
  813. }
  814. /*FI*/return R;
  815. }
  816. /*No:TYPE_POINTER.run_type*/
  817. /*No:TYPE_POINTER.is_pointer*/
  818. /*No:TYPE_POINTER.is_string*/
  819. /*No:TYPE_POINTER.is_like_feature*/
  820. /*No:TYPE_POINTER.is_like_current*/
  821. void r900make(T900* C,T0* a1){
  822. {T451*n=malloc(sizeof(*n));
  823. *n=M451;
  824. r451make(n,((T0*)ms21_473),a1);
  825. C->_base_class_name=(T0*)n;
  826. }
  827. }
  828. /*No:TYPE_POINTER.nb_errors*/
  829. /*No:TYPE_POINTER.us_item*/
  830. void r900load_ref(T0* a1){
  831. T0* _rf=NULL;
  832. T0* _rc=NULL;
  833. T0* _cn=NULL;
  834. {T451*n=malloc(sizeof(*n));
  835. *n=M451;
  836. r451make(n,a1,NULL);
  837. _cn=(T0*)n;
  838. }
  839. _rc=r605run_class(((T605*)(r451base_class(((T451*)_cn)))));
  840. r368set_at_run_time(((T368*)_rc));
  841. _rf=r368get_feature_with(((T368*)_rc),((T0*)ms86_473));
  842. }
  843. /*No:TYPE_POINTER.us_pointer*/
  844. int fBC364type_pointer_ref=0;
  845. T0*oBC364type_pointer_ref=NULL;
  846. T0* r900type_pointer_ref(void){
  847. if (fBC364type_pointer_ref==0){
  848. T0* R=NULL;
  849. T0* _pointer_ref=NULL;
  850. fBC364type_pointer_ref=1;
  851. {T451*n=malloc(sizeof(*n));
  852. *n=M451;
  853. r451make(n,((T0*)ms22_473),NULL);
  854. _pointer_ref=(T0*)n;
  855. }
  856. {T657*n=malloc(sizeof(*n));
  857. *n=M657;
  858. /*[IRF3.3make*/((((T657*)(n)))->_base_class_name)=(_pointer_ref);
  859. /*]*/
  860. R=(T0*)n;
  861. }
  862. oBC364type_pointer_ref=R;}
  863. return oBC364type_pointer_ref;}
  864. int fBC900check_type=0;
  865. void r900check_type(T900* C){
  866. if (fBC900check_type==0){
  867. T0* _rc=NULL;
  868. T0* _bc=NULL;
  869. fBC900check_type=1;
  870. _bc=r900base_class(C);
  871. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  872. _rc=r900run_class(C);
  873. }
  874. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  875. /*IF*/if (!((((T605*)((T605*)_bc)))->_is_expanded/*20*/)) {
  876. r900error(/*(IRF4.6start_position*/(((T451*)((T451*)((((T900*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/,((T0*)ms3_900));
  877. }
  878. /*FI*/}
  879. /*FI*/}}
  880. /*No:TYPE_POINTER.start_position*/
  881. /*No:TYPE_POINTER.is_character*/
  882. T0* r900written_mark(void){
  883. T0* R=NULL;
  884. R=((T0*)ms21_473);
  885. return R;
  886. }
  887. /*No:TYPE_POINTER.is_run_type*/
  888. T0* r900to_runnable(T900* C,T0* a1){
  889. T0* R=NULL;
  890. R=(T0*)C;
  891. r900check_type(C);
  892. return R;
  893. }
  894. T0* r900generic_list(T900* C){
  895. T0* R=NULL;
  896. r900fatal_error_generic_list(C);
  897. return R;
  898. }
  899. /*No:TYPE_POINTER.is_formal_generic*/
  900. /*No:TYPE_POINTER.is_real*/
  901. /*No:TYPE_POINTER.us_pointer_ref*/
  902. /*No:TYPE_POINTER.is_bit*/
  903. void r900fatal_error_generic_list(T900* C){
  904. r683add_type((T0*)C,((T0*)ms12_291));
  905. r683print_as_fatal_error(((T683*)(oBC364eh)));
  906. }
  907. T0* r900smallest_ancestor(T900* C,T0* a1){
  908. T0* R=NULL;
  909. T0* _rto=NULL;
  910. _rto=X291run_type(a1);
  911. /*IF*/if (X291is_pointer(_rto)) {
  912. R=(T0*)C;
  913. }
  914. else {
  915. R=r657smallest_ancestor(((T657*)(r900type_pointer_ref())),_rto);
  916. }
  917. /*FI*/return R;
  918. }
  919. /*No:TYPE_POINTER.is_boolean*/
  920. /*No:TYPE_POINTER.is_double*/
  921. T0* r900run_class(T900* C){
  922. T0* R=NULL;
  923. R=r604run_class((T0*)C);
  924. return R;
  925. }
  926. T0* r900run_time_mark(void){
  927. T0* R=NULL;
  928. R=((T0*)ms21_473);
  929. return R;
  930. }
  931. int r900is_a_in(T900* C,T0* a1,T0* a2){
  932. int R=0;
  933. T0* _ct=NULL;
  934. T0* _t2=NULL;
  935. T0* _t1=NULL;
  936. /*IF*/if ((r900written_mark())==((void*)(X291written_mark(a1)))) {
  937. R=1;
  938. }
  939. else {
  940. _ct=(((T368*)((T368*)a2)))->_current_type/*0*/;
  941. _t1=r900to_runnable(C,_ct);
  942. _t2=X291to_runnable(a1,_ct);
  943. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  944. R=1;
  945. }
  946. else {
  947. R=X291is_a(_t1,_t2);
  948. }
  949. /*FI*/}
  950. /*FI*/return R;
  951. }
  952. T0* r900look_up_for(T900* C,T0* a1,T0* a2){
  953. T0* R=NULL;
  954. R=r605look_up_for(((T605*)(r900base_class(C))),a1,a2);
  955. return R;
  956. }
  957. /*No:TYPE_POINTER.expanded_initializer*/
  958. /*No:TYPE_POINTER.fz_dot*/
  959. /*No:TYPE_POINTER.is_generic*/
  960. int fBC900used_as_reference=0;
  961. void r900used_as_reference(void){
  962. if (fBC900used_as_reference==0){
  963. fBC900used_as_reference=1;
  964. r900load_ref(((T0*)ms22_473));
  965. }}
  966. /*No:TYPE_POINTER.is_reference*/
  967. void r900error(T0* a1,T0* a2){
  968. r683add_position(a1);
  969. r683error(((T683*)(oBC364eh)),a2);
  970. }
  971. T0* r900base_class(T900* C){
  972. T0* R=NULL;
  973. T0* _bcn=NULL;
  974. _bcn=(((T900*)C))->_base_class_name/*4*/;
  975. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  976. R=r451base_class(((T451*)_bcn));
  977. }
  978. else {
  979. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  980. r7append(((T7*)(oBC683explanation)),b1);
  981. }/*]*/
  982. r683add_type((T0*)C,((T0*)ms67_470));
  983. r683print_as_fatal_error(((T683*)(oBC364eh)));
  984. }
  985. /*FI*/return R;
  986. }
  987. /*No:TYPE_POINTER.short_hook*/
  988. /*No:TYPE_POINTER.is_any*/
  989. /*No:TYPE_POINTER.base_class_name*/
  990. /*No:TYPE_POINTER.is_expanded*/
  991. /*No:TYPE_POINTER.is_basic_eiffel_expanded*/
  992. /*No:TYPE_POINTER.is_none*/
  993. /*No:TYPE_POINTER.is_integer*/
  994. /*No:E_WHEN.when_list*/
  995. void r843add_when_item_1(T843* C,T0* a1){
  996. int _v=0;
  997. _v=(((T349*)((T349*)a1)))->_expression_value/*12*/;
  998. /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_v)/*)*/) {
  999. r843err_occ(C,_v,r349start_position(((T349*)a1)));
  1000. }
  1001.  else if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) {
  1002. {T353*n=malloc(sizeof(*n));
  1003. *n=M353;
  1004. r353make(n,_v,_v);
  1005. C->_values=(T0*)n;
  1006. }
  1007. /*[IRF3.6put*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/));
  1008. int b1=1;
  1009. int b2=_v;
  1010. ((((T353*)C1))->_storage/*0*/)[(b2)-((((T353*)C1))->_lower/*12*/)]=(b1);
  1011. }/*]*/
  1012. }
  1013. else {
  1014. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_v);
  1015. }
  1016. /*FI*/}
  1017. T0* r843to_runnable_integer(T843* C,T0* a1){
  1018. T0* R=NULL;
  1019. T0* _when_item=NULL;
  1020. int _i=0;
  1021. int _ne=0;
  1022. /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) {
  1023. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  1024. C->_when_list=a1;
  1025. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  1026. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  1027. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843));
  1028. }
  1029. else {
  1030. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  1031. while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) {
  1032. _when_item=X274to_runnable_integer(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C);
  1033. /*IF*/if ((_when_item)==((void*)(NULL))) {
  1034. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  1035. }
  1036. else {
  1037. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  1038. T0* b1=_when_item;
  1039. int b2=_i;
  1040. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  1041. }/*]*/
  1042. }
  1043. /*FI*/_i=(_i)+(1);
  1044. }
  1045. }
  1046. /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  1047. C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/);
  1048. /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) {
  1049. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  1050. }
  1051. /*FI*/}
  1052. /*FI*/R=(T0*)C;
  1053. }
  1054. else {
  1055. {T843*n=malloc(sizeof(*n));
  1056. *n=M843;
  1057. r843from_e_when(n,(T0*)C);
  1058. R=(T0*)n;
  1059. }
  1060. R=r843to_runnable_integer(((T843*)R),a1);
  1061. }
  1062. /*FI*/return R;
  1063. }
  1064. void r843make(T843* C,T0* a1,T0* a2){
  1065. C->_start_position=a1;
  1066. C->_header_comment=a2;
  1067. }
  1068. /*No:E_WHEN.nb_errors*/
  1069. void r843add_when_item_2(T843* C,T0* a1){
  1070. int _i=0;
  1071. int _u=0;
  1072. int _l=0;
  1073. _l=(((T372*)((T372*)a1)))->_lower_value/*20*/;
  1074. _u=(((T372*)((T372*)a1)))->_upper_value/*16*/;
  1075. /*IF*/if ((_l)>=(_u)) {
  1076. r843error(r372start_position(((T372*)a1)),((T0*)ms8_843));
  1077. }
  1078. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1079. _i=_l;
  1080. while (!((_i)>(_u))) {
  1081. /*IF*/if (/*(IRF4.6includes*/r377includes_integer(((T377*)((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_when_list/*16*/)),_i)/*)*/) {
  1082. r843err_occ(C,_i,r372start_position(((T372*)a1)));
  1083. _i=(_u)+(1);
  1084. }
  1085. else {
  1086. _i=(_i)+(1);
  1087. }
  1088. /*FI*/}
  1089. }
  1090. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  1091. /*IF*/if (((((T843*)C))->_values/*20*/)==((void*)(NULL))) {
  1092. {T353*n=malloc(sizeof(*n));
  1093. *n=M353;
  1094. r353make(n,_l,_u);
  1095. C->_values=(T0*)n;
  1096. }
  1097. /*[IRF3.6set_all_with*/{T353* C1=((T353*)((((T843*)C))->_values/*20*/));
  1098. int b1=1;
  1099. r567set_all_with((((T353*)C1))->_storage/*0*/,b1,((((T353*)C1))->_upper/*8*/)-((((T353*)C1))->_lower/*12*/));
  1100. }/*]*/
  1101. }
  1102. else {
  1103. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_l);
  1104. r353force(((T353*)((((T843*)C))->_values/*20*/)),1,_u);
  1105. r353set_slice_with(((T353*)((((T843*)C))->_values/*20*/)),1,_l,_u);
  1106. }
  1107. /*FI*/}
  1108. /*FI*/}
  1109. void r843from_e_when(T843* C,T0* a1){
  1110. T0* _when_item=NULL;
  1111. int _i=0;
  1112. C->_start_position=(((T843*)((T843*)a1)))->_start_position/*0*/;
  1113. C->_list=X631twin((((T843*)((T843*)a1)))->_list/*4*/);
  1114. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  1115. while (!((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))) {
  1116. _when_item=X274twin(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)));
  1117. /*X274*//*[IRF3.3clear_e_when*/((((T349*)(((T349*)_when_item))))->_e_when)=(NULL);
  1118. /*]*/
  1119. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  1120. T0* b1=_when_item;
  1121. int b2=_i;
  1122. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  1123. }/*]*/
  1124. _i=(_i)+(1);
  1125. }
  1126. C->_header_comment=(((T843*)((T843*)a1)))->_header_comment/*8*/;
  1127. C->_compound=(((T843*)((T843*)a1)))->_compound/*12*/;
  1128. }
  1129. /*No:E_WHEN.values*/
  1130. /*No:E_WHEN.start_position*/
  1131. void r843err_occ(T843* C,int a1,T0* a2){
  1132. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  1133. /*[IRF3.6append*/{T0* b1=((T0*)ms9_843);
  1134. r7append(((T7*)(oBC683explanation)),b1);
  1135. }/*]*/
  1136. /*[IRF3.6append*/{T0* b1=r2to_string(a1);
  1137. r7append(((T7*)(oBC683explanation)),b1);
  1138. }/*]*/
  1139. r843error(a2,((T0*)ms10_843));
  1140. }
  1141. /*No:E_WHEN.em1*/
  1142. /*No:E_WHEN.list*/
  1143. /*No:E_WHEN.em2*/
  1144. /*No:E_WHEN.set_compound*/
  1145. void r843add_value(T843* C,T0* a1){
  1146. T0* _element=NULL;
  1147. {T349*n=malloc(sizeof(*n));
  1148. *n=M349;
  1149. /*[IRF3.3make*/((((T349*)(n)))->_expression)=(a1);
  1150. /*]*/
  1151. _element=(T0*)n;
  1152. }
  1153. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  1154. C->_list=se_ma247(1,_element);
  1155. }
  1156. else {
  1157. X631add_last((((T843*)C))->_list/*4*/,_element);
  1158. }
  1159. /*FI*/}
  1160. /*No:E_WHEN.current_type*/
  1161. /*No:E_WHEN.compound*/
  1162. /*No:E_WHEN.header_comment*/
  1163. void r843error(T0* a1,T0* a2){
  1164. r683add_position(a1);
  1165. r683error(((T683*)(oBC364eh)),a2);
  1166. }
  1167. int r843includes_integer(T843* C,int a1){
  1168. int R=0;
  1169. R=((((((T843*)C))->_values/*20*/)!=((void*)(NULL)))&&(r353valid_index(((T353*)((((T843*)C))->_values/*20*/)),a1)))&&(r353item(((T353*)((((T843*)C))->_values/*20*/)),a1));
  1170. return R;
  1171. }
  1172. T0* r843to_runnable_character(T843* C,T0* a1){
  1173. T0* R=NULL;
  1174. T0* _when_item=NULL;
  1175. int _i=0;
  1176. int _ne=0;
  1177. /*IF*/if (((((T843*)C))->_when_list/*16*/)==((void*)(NULL))) {
  1178. _ne=/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/;
  1179. C->_when_list=a1;
  1180. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  1181. r683add_position((((T270*)((T270*)(/*(IRF4.6e_inspect*/(((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*//*)*/))))->_start_position/*8*/);
  1182. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms12_843));
  1183. }
  1184. else {
  1185. _i=/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_lower/*16*/);
  1186. while (!(((_i)>(/*X631*/((int)(((T247*)((T247*)((((T843*)C))->_list/*4*/))))->_upper/*12*/)))||(((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)-(_ne))>(0)))) {
  1187. _when_item=X274to_runnable_character(/*X631*/((T0*)r247item(((T247*)((((T843*)C))->_list/*4*/)),_i)),(T0*)C);
  1188. /*IF*/if ((_when_item)==((void*)(NULL))) {
  1189. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  1190. }
  1191. else {
  1192. /*X631*//*[IRF3.6put*/{T247* C1=((T247*)((((T843*)C))->_list/*4*/));
  1193. T0* b1=_when_item;
  1194. int b2=_i;
  1195. ((((T247*)C1))->_storage/*4*/)[(b2)-((((T247*)C1))->_lower/*16*/)]=(b1);
  1196. }/*]*/
  1197. }
  1198. /*FI*/_i=(_i)+(1);
  1199. }
  1200. }
  1201. /*FI*//*IF*/if (((((T843*)C))->_compound/*12*/)!=((void*)(NULL))) {
  1202. C->_compound=r592to_runnable(((T592*)((((T843*)C))->_compound/*12*/)),/*(IRF4.6current_type*//*(IRF4.6current_type*/r270current_type(((T270*)((((T377*)((T377*)((((T843*)C))->_when_list/*16*/))))->_e_inspect/*0*/)))/*)*//*)*/);
  1203. /*IF*/if (((((T843*)C))->_compound/*12*/)==((void*)(NULL))) {
  1204. r843error((((T843*)C))->_start_position/*0*/,((T0*)ms11_843));
  1205. }
  1206. /*FI*/}
  1207. /*FI*/R=(T0*)C;
  1208. }
  1209. else {
  1210. {T843*n=malloc(sizeof(*n));
  1211. *n=M843;
  1212. r843from_e_when(n,(T0*)C);
  1213. R=(T0*)n;
  1214. }
  1215. R=r843to_runnable_character(((T843*)R),a1);
  1216. }
  1217. /*FI*/return R;
  1218. }
  1219. void r843add_slice(T843* C,T0* a1,T0* a2){
  1220. T0* _element=NULL;
  1221. {T372*n=malloc(sizeof(*n));
  1222. *n=M372;
  1223. r372make(n,a1,a2);
  1224. _element=(T0*)n;
  1225. }
  1226. /*IF*/if (((((T843*)C))->_list/*4*/)==((void*)(NULL))) {
  1227. C->_list=se_ma263(1,_element);
  1228. }
  1229. else {
  1230. X631add_last((((T843*)C))->_list/*4*/,_element);
  1231. }
  1232. /*FI*/}
  1233. /*No:E_WHEN.e_inspect*/
  1234. void r686get_started(T686* C){
  1235. T0* _p2=NULL;
  1236. T0* _p1=NULL;
  1237. int _i2=0;
  1238. int _i1=0;
  1239. _i1=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1240. while (!((_i1)==(0))) {
  1241. r877get_started(((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i1))),(T0*)C);
  1242. _i1=(_i1)-(1);
  1243. }
  1244. /*IF*/if (((((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/)>(1)) {
  1245. _i2=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1246. while (!((_i2)==(1))) {
  1247. _i1=1;
  1248. while (!((_i1)==(_i2))) {
  1249. _p1=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i1);
  1250. _p2=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i2);
  1251. r877multiple_check(((T877*)_p1),_p2);
  1252. r877multiple_check(((T877*)_p2),_p1);
  1253. _i1=(_i1)+(1);
  1254. }
  1255. _i2=(_i2)-(1);
  1256. }
  1257. }
  1258. /*FI*/}
  1259. T0* r686class_any(void){
  1260. if (fBC364class_any==0){
  1261. T0* R=NULL;
  1262. fBC364class_any=1;
  1263. R=r686class_with(((T0*)ms1_473));
  1264. oBC364class_any=R;}
  1265. return oBC364class_any;}
  1266. int r686has_parent(T686* C,T0* a1){
  1267. int R=0;
  1268. T0* _bc=NULL;
  1269. int _i=0;
  1270. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1271. while (!((_i)==(0))) {
  1272. _bc=X291base_class((((T877*)((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i)))))->_type/*4*/);
  1273. /*IF*/if ((a1)==((void*)(_bc))) {
  1274. R=1;
  1275. _i=0;
  1276. }
  1277.  else if (r605is_subclass_of_aux(((T605*)_bc),a1)) {
  1278. R=1;
  1279. _i=0;
  1280. }
  1281. else {
  1282. _i=(_i)-(1);
  1283. }
  1284. /*FI*/}
  1285. return R;
  1286. }
  1287. T0* r686class_with(T0* a1){
  1288. T0* R=NULL;
  1289. R=r604get_class(a1);
  1290. return R;
  1291. }
  1292. /*No:PARENT_LIST.fz_cnf*/
  1293. void r686up_to_any_in(T686* C,T0* a1){
  1294. T0* _bc=NULL;
  1295. T0* _p=NULL;
  1296. int _i=0;
  1297. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1298. while (!((_i)==(0))) {
  1299. _p=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1300. _bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
  1301. /*IF*/if (!(r654fast_has(((T654*)a1),_bc))) {
  1302. r654add_last(((T654*)a1),_bc);
  1303. }
  1304. /*FI*/_i=(_i)-(1);
  1305. }
  1306. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1307. while (!((_i)==(0))) {
  1308. _p=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1309. _bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
  1310. /*IF*/if ((_bc)!=((void*)(r686class_any()))) {
  1311. r605up_to_any_in(((T605*)_bc),a1);
  1312. }
  1313. /*FI*/_i=(_i)-(1);
  1314. }
  1315. }
  1316. void r686make(T686* C,T0* a1,T0* a2,T0* a3,T0* a4){
  1317. C->_base_class=a1;
  1318. C->_heading_comment=a3;
  1319. C->_start_position=a2;
  1320. C->_list=a4;
  1321. }
  1322. void r686header_comment_for(T686* C,T0* a1){
  1323. int _i=0;
  1324. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1325. while (!(((_i)==(0))||(((((T673*)((T673*)a1)))->_header_comment/*4*/)!=((void*)(NULL))))) {
  1326. r605header_comment_for(((T605*)(X291base_class((((T877*)((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i)))))->_type/*4*/))),a1);
  1327. _i=(_i)-(1);
  1328. }
  1329. }
  1330. /*No:PARENT_LIST.start_position*/
  1331. T0* r686next_parent_for(T686* C,T0* a1,T0* a2){
  1332. T0* R=NULL;
  1333. T0* _pbc=NULL;
  1334. int _i=0;
  1335. _i=1;
  1336. while (!((R)==((void*)(a2)))) {
  1337. R=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1338. _i=(_i)+(1);
  1339. }
  1340. R=NULL;
  1341. while (!(((R)!=((void*)(NULL)))||((_i)>(r26count(((T26*)((((T686*)C))->_list/*12*/))))))) {
  1342. R=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1343. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  1344. /*IF*/if ((_pbc)==((void*)(a1))) {
  1345. }
  1346.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  1347. }
  1348. else {
  1349. R=NULL;
  1350. }
  1351. /*FI*/_i=(_i)+(1);
  1352. }
  1353. return R;
  1354. }
  1355. T0* r686first_parent_for(T686* C,T0* a1){
  1356. T0* R=NULL;
  1357. T0* _pbc=NULL;
  1358. int _i=0;
  1359. _i=1;
  1360. while (!((R)!=((void*)(NULL)))) {
  1361. R=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1362. _pbc=X291base_class((((T877*)((T877*)R)))->_type/*4*/);
  1363. /*IF*/if ((_pbc)==((void*)(a1))) {
  1364. }
  1365.  else if (r605is_subclass_of(((T605*)_pbc),a1)) {
  1366. }
  1367. else {
  1368. R=NULL;
  1369. }
  1370. /*FI*/_i=(_i)+(1);
  1371. }
  1372. return R;
  1373. }
  1374. void r686inherit_cycle_check(T686* C){
  1375. T0* _bc=NULL;
  1376. T0* _p=NULL;
  1377. int _i=0;
  1378. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1379. while (!((_i)==(0))) {
  1380. _p=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1381. _bc=X291base_class((((T877*)((T877*)_p)))->_type/*4*/);
  1382. /*IF*/if ((_bc)==((void*)(NULL))) {
  1383. r683add_position(r877start_position(((T877*)_p)));
  1384. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms66_470);
  1385. r683fatal_error(((T683*)(oBC364eh)),b1);
  1386. }/*]*/
  1387. }
  1388. else {
  1389. r605inherit_cycle_check(((T605*)_bc));
  1390. }
  1391. /*FI*/_i=(_i)-(1);
  1392. }
  1393. }
  1394. /*No:PARENT_LIST.em1*/
  1395. /*No:PARENT_LIST.list*/
  1396. T0* r686up_to_original(T686* C,T0* a1,T0* a2){
  1397. T0* R=NULL;
  1398. int _i=0;
  1399. T0* _new_fn=NULL;
  1400. T0* _fn2=NULL;
  1401. T0* _fn1=NULL;
  1402. T0* _p2=NULL;
  1403. T0* _p1=NULL;
  1404. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1405. while (!(((_i)==(0))||((_fn1)!=((void*)(NULL))))) {
  1406. _p1=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1407. _fn1=r877up_to_original(((T877*)_p1),a1,a2);
  1408. _i=(_i)-(1);
  1409. }
  1410. while (!((_i)==(0))) {
  1411. _p2=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1412. _fn2=r877up_to_original(((T877*)_p2),a1,a2);
  1413. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  1414. _new_fn=r877do_rename(((T877*)_p2),a2);
  1415. /*IF*/if (r877has_select_for(((T877*)_p2),_new_fn)) {
  1416. _p1=_p2;
  1417. _fn1=_fn2;
  1418. }
  1419. /*FI*/}
  1420. /*FI*/_i=(_i)-(1);
  1421. }
  1422. /*IF*/if ((_fn1)!=((void*)(NULL))) {
  1423. /*IF*/if ((X776to_string(_fn1))!=((void*)(X776to_string(a2)))) {
  1424. R=r686repeated_inheritance(C,_p1,_fn1,a2);
  1425. }
  1426. else {
  1427. R=_fn1;
  1428. }
  1429. /*FI*/}
  1430. /*FI*/return R;
  1431. }
  1432. void r686collect_invariant(T686* C,T0* a1){
  1433. int _i=0;
  1434. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1435. while (!((_i)==(0))) {
  1436. r605collect_invariant(((T605*)(X291base_class((((T877*)((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i)))))->_type/*4*/))),a1);
  1437. _i=(_i)-(1);
  1438. }
  1439. }
  1440. T0* r686smallest_ancestor(T686* C,T0* a1){
  1441. T0* R=NULL;
  1442. T0* _sa=NULL;
  1443. T0* _p=NULL;
  1444. int _i=0;
  1445. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1446. while (!((_i)==(0))) {
  1447. _p=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1448. _sa=X291run_type(r877smallest_ancestor(((T877*)_p),a1));
  1449. /*IF*/if ((R)==((void*)(NULL))) {
  1450. R=_sa;
  1451. }
  1452. else {
  1453. R=X291smallest_ancestor(_sa,R);
  1454. }
  1455. /*FI*//*IF*/if (X291is_any(R)) {
  1456. _i=0;
  1457. }
  1458. else {
  1459. _i=(_i)-(1);
  1460. }
  1461. /*FI*/}
  1462. return R;
  1463. }
  1464. int r686has(T686* C,T0* a1){
  1465. int R=0;
  1466. int _i=0;
  1467. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1468. while (!((R)||((_i)==(0)))) {
  1469. R=r877has(((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i))),a1);
  1470. _i=(_i)-(1);
  1471. }
  1472. return R;
  1473. }
  1474. int r686has_redefine(T686* C,T0* a1){
  1475. int R=0;
  1476. int _i=0;
  1477. _i=1;
  1478. while (!((R)||((_i)>((((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/)))) {
  1479. R=r877has_redefine(((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i))),a1);
  1480. _i=(_i)+(1);
  1481. }
  1482. return R;
  1483. }
  1484. T0* r686look_up_for(T686* C,T0* a1,T0* a2){
  1485. T0* R=NULL;
  1486. T0* _f2=NULL;
  1487. T0* _f1=NULL;
  1488. T0* _p2=NULL;
  1489. T0* _p1=NULL;
  1490. int _i=0;
  1491. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1492. while (!(((_f1)!=((void*)(NULL)))||((_i)==(0)))) {
  1493. _p1=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1494. _f1=r877look_up_for(((T877*)_p1),a1,a2);
  1495. _i=(_i)-(1);
  1496. }
  1497. while (!((_i)==(0))) {
  1498. _p2=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1499. _f2=r877look_up_for(((T877*)_p2),a1,a2);
  1500. /*IF*/if ((_f2)==((void*)(NULL))) {
  1501. }
  1502.  else if ((_f1)==((void*)(_f2))) {
  1503. }
  1504.  else if (!(X359is_merge_with(_f2,_f1,a1))) {
  1505. r683add_position((((T686*)C))->_start_position/*4*/);
  1506. r683add_position(X359start_position(_f1));
  1507. r683add_position(X359start_position(_f2));
  1508. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms70_470);
  1509. r683fatal_error(((T683*)(oBC364eh)),b1);
  1510. }/*]*/
  1511. }
  1512.  else if (X359is_deferred(_f2)) {
  1513. }
  1514.  else if (X359is_deferred(_f1)) {
  1515. _f1=_f2;
  1516. _p1=_p2;
  1517. }
  1518.  else if (r877has_redefine(((T877*)_p1),a2)) {
  1519. /*IF*/if (r877has_redefine(((T877*)_p2),a2)) {
  1520. }
  1521. else {
  1522. r683add_position(X776start_position(a2));
  1523. r683add_position(r877start_position(((T877*)_p2)));
  1524. r683add_position(X359start_position(_f2));
  1525. /*[IRF3.6append*/{T0* b1=((T0*)ms2_686);
  1526. r7append(((T7*)(oBC683explanation)),b1);
  1527. }/*]*/
  1528. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1529. }
  1530. /*FI*/}
  1531.  else if (r877has_redefine(((T877*)_p2),a2)) {
  1532. r683add_position(X776start_position(a2));
  1533. r683add_position(r877start_position(((T877*)_p1)));
  1534. r683add_position(X359start_position(_f1));
  1535. /*[IRF3.6append*/{T0* b1=((T0*)ms2_686);
  1536. r7append(((T7*)(oBC683explanation)),b1);
  1537. }/*]*/
  1538. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1539. }
  1540. else {
  1541. r683add_position(r877start_position(((T877*)_p2)));
  1542. r683add_position(r877start_position(((T877*)_p1)));
  1543. r683add_position(X359start_position(_f1));
  1544. r683add_position(X359start_position(_f2));
  1545. /*[IRF3.6append*/{T0* b1=((T0*)ms2_686);
  1546. r7append(((T7*)(oBC683explanation)),b1);
  1547. }/*]*/
  1548. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1549. }
  1550. /*FI*/_i=(_i)-(1);
  1551. }
  1552. R=_f1;
  1553. return R;
  1554. }
  1555. T0* r686repeated_inheritance(T686* C,T0* a1,T0* a2,T0* a3){
  1556. T0* R=NULL;
  1557. T0* _bc1=NULL;
  1558. T0* _p2=NULL;
  1559. int _i=0;
  1560. _bc1=X291base_class((((T877*)((T877*)a1)))->_type/*4*/);
  1561. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1562. while (!((_i)==(0))) {
  1563. _p2=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1564. /*IF*/if ((a1)!=((void*)(_p2))) {
  1565. /*IF*/if ((_bc1)==((void*)(X291base_class((((T877*)((T877*)_p2)))->_type/*4*/)))) {
  1566. /*IF*/if ((X776to_string(r877do_rename(((T877*)_p2),a2)))==((void*)(X776to_string(a3)))) {
  1567. R=a3;
  1568. }
  1569.  else if ((X776to_string(r877do_rename(((T877*)a1),a2)))==((void*)(X776to_string(a3)))) {
  1570. R=a3;
  1571. }
  1572. /*FI*/}
  1573. /*FI*/}
  1574. /*FI*/_i=(_i)-(1);
  1575. }
  1576. /*IF*/if ((R)==((void*)(NULL))) {
  1577. R=a2;
  1578. }
  1579. /*FI*/return R;
  1580. }
  1581. /*No:PARENT_LIST.super*/
  1582. T0* r686clients_for(T686* C,T0* a1){
  1583. T0* R=NULL;
  1584. T0* _cl=NULL;
  1585. int _i=0;
  1586. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1587. while (!((_i)==(0))) {
  1588. _cl=r877clients_for(((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i))),a1);
  1589. /*IF*/if ((R)==((void*)(NULL))) {
  1590. R=_cl;
  1591. }
  1592.  else if ((_cl)!=((void*)(NULL))) {
  1593. R=r636append(((T636*)R),_cl);
  1594. }
  1595. /*FI*//*IF*/if (((R)!=((void*)(NULL)))&&(r636gives_permission_to_any(((T636*)R)))) {
  1596. _i=0;
  1597. }
  1598. else {
  1599. _i=(_i)-(1);
  1600. }
  1601. /*FI*/}
  1602. return R;
  1603. }
  1604. T0* r686going_up(T686* C,T0* a1,T0* a2,T0* a3){
  1605. T0* R=NULL;
  1606. T0* _fn2=NULL;
  1607. T0* _fn1=NULL;
  1608. T0* _p2=NULL;
  1609. T0* _p1=NULL;
  1610. int _i=0;
  1611. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1612. while (!(((_fn1)!=((void*)(NULL)))||((_i)==(0)))) {
  1613. _p1=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1614. _fn1=r877going_up(((T877*)_p1),a1,a2,a3);
  1615. _i=(_i)-(1);
  1616. }
  1617. while (!((_i)==(0))) {
  1618. _p2=r26item(((T26*)((((T686*)C))->_list/*12*/)),_i);
  1619. _fn2=r877going_up(((T877*)_p2),a1,a2,a3);
  1620. /*IF*/if ((_fn2)!=((void*)(NULL))) {
  1621. /*IF*/if (r877has_select_for(((T877*)_p2),_fn2)) {
  1622. _p1=_p2;
  1623. _fn1=_fn2;
  1624. }
  1625. /*FI*/}
  1626. /*FI*/_i=(_i)-(1);
  1627. }
  1628. R=_fn1;
  1629. return R;
  1630. }
  1631. void r686collect_for(T686* C,int a1,T0* a2){
  1632. int _i=0;
  1633. _i=1;
  1634. while (!((_i)>((((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/))) {
  1635. r877collect_for(((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i))),a1,a2);
  1636. _i=(_i)+(1);
  1637. }
  1638. }
  1639. int r686is_a_vncg(T686* C,T0* a1,T0* a2){
  1640. int R=0;
  1641. int _i=0;
  1642. _i=(((T26*)((T26*)((((T686*)C))->_list/*12*/))))->_upper/*8*/;
  1643. while (!((R)||((_i)==(0)))) {
  1644. R=r877is_a_vncg(((T877*)(r26item(((T26*)((((T686*)C))->_list/*12*/)),_i))),a1,a2);
  1645. _i=(_i)-(1);
  1646. }
  1647. return R;
  1648. }
  1649. /*No:PARENT_LIST.heading_comment*/
  1650. /*No:PARENT_LIST.count*/
  1651. /*No:PARENT_LIST.base_class*/
  1652. /*No:PARENT_LIST.fatal_error*/
  1653. /*No:PARENT_LIST.fz_ich*/
  1654. /*No:PARENT_LIST.us_any*/
  1655.  
  1656.